<?php
/* Questo script permette l'inserimento dei prodotti nel sistema dal backend del sito */

session_start();
require "include/dbms.inc.php";
require "include/template.inc.php";
require "include/setcontents.inc.php";
require "include/accesscontrol.inc.php";
require "include/formcontrol.inc.php";
require "include/imagecontrol.inc.php";

accesscontrol::controllo_privilegi();

 /* Funzione per la visualizzazione della tabella dei prodotti presenti nel database */

function displaydefault(){
    if (!isset($_GET['by'])){
        $_GET['by']="nome";
    }
    $result = setcontents::getResult(
            "SELECT prodotto.id, prodotto.nome, prodotto.marca, prodotto.categoria, prodotto.quantita as quantita,
                    prodotto.prezzo, prodotto.attivo, marca.nome as nome_marca, categoria.nome as nome_categoria
               FROM prodotto
          LEFT JOIN marca
                 ON prodotto.marca = marca.id
          LEFT JOIN categoria
                 ON prodotto.categoria = categoria.id
           ORDER BY ".$_GET['by']." ".$_GET['ord']);

if (!isset($_GET['by_m'])){
        $_GET['by_m']="nome";
    }
    $resultM = setcontents::getResult(
            "SELECT id,nome
               FROM marca
           ORDER BY ".$_GET['by_m']." ".$_GET['ord_m']);

if (!isset($_GET['by_c'])){
        $_GET['by_c']="nome";
    }
    $resultC = setcontents::getResult(
            "SELECT id,nome
               FROM categoria
           ORDER BY ".$_GET['by_c']." ".$_GET['ord_c']);

    $body = new Template ("dtml/gestione_prodotti.html");
    $body->setContent("categorie", $resultC);
    $body->setContent("marche", $resultM);
    $body->setContent("prodotti", $result);
    return $body;
}

/* --------------- INIZIO SCRIPT GESTIONE PRODOTTI --------------- */

if(isset($_GET['op']) && isset($_GET['id'])){
    $_POST['id'] = $_GET['id'];
    $_POST['op'] = $_GET['op'];
}
if(isset($_GET['tipologia'])){
    $_POST['tipologia'] = $_GET['tipologia'];
}

if(isset($_POST['op'])){

    switch ($_POST['op']) {

/* ----- Inserimento marche, categorie, prodotti-----*/

        case 'inserisci':
            switch ($_POST['tipologia']){

                /* ----- INSERIMENTO MARCA ----- */
                case 'marche':

                    $body = new Template("dtml/inserimento_marca.html");

                    if($_POST['page'] == 1){
                        
                        if(!formcontrol::field($body, $message, $style)){ //controllo valori immessi nel form
                            formcontrol::precform($body,"modifica");
                        }else{
                            echo htmlspecialchars("<dasf>trg\"gfàòvvv");
                            echo htmlspecialchars($_POST['nome']);
                            $nome = addslashes($_POST['nome']);
                            $descrizione = addslashes($_POST['descrizione']);

                            /*      PREPARAZIONE IMMAGINE-LOGO MARCA        */
                            if($_FILES['immagine']['tmp_name'] != ""){
                                // leggo il contenuto del file
                                $nome_file_temporaneo = $_FILES['immagine']['tmp_name'];
                                $dati_file = file_get_contents($nome_file_temporaneo);
                                // preparo il contenuto del file per la query
                                $dati_file = addslashes($dati_file);
                                }

                                 /*      INSERIMENTO MARCA NEL DATABASE      */
                            $oid = mysql_query("INSERT INTO marca (nome, descrizione,logo) VALUES (

                                    '{$nome}',
                                    '{$descrizione}',
                                    '{$dati_file}')");

                            if (!$oid ) {
                                $message="Si e' riscontrato un problema nell'inserimento: ".mysql_error();
                                formcontrol::precform($body, "modifica");
                                $style="alert";
                            }else{
                                $message = "Marca \"".$_POST['nome']."\" inserita correttamente";
                                $body = displaydefault();
                                $style = "message";
                                }
                        }
                    }
                    break;

                /* ----- INSERIMENTO CATEGORIA ----- */
                case 'categorie':

                    $body = new Template("dtml/inserimento_categoria.html");

                    if($_POST['page'] == 1){

                        if(!formcontrol::field($body, $message, $style)){ //controllo valori immessi nel form
                            formcontrol::precform($body,"modifica");
                        }else{
                            $nome = addslashes($_POST['nome']);
                            $descrizione = addslashes($_POST['descrizione']);

                               /*      INSERIMENTO CATEGORIA NEL DATABASE      */
                            $oid = mysql_query("INSERT INTO categoria (nome, descrizione) VALUES (

                                    '{$nome}',
                                    '{$descrizione}')");

                            if (!$oid ) {
                                $message="Si e' riscontrato un problema nell'inserimento: ".mysql_error();
                                formcontrol::precform($body, "modifica");
                                $style="alert";
                                break;
                            }

                            $new_cat = mysql_query("
                                SELECT id
                                  FROM categoria
                                 WHERE nome = '{$_POST['nome']}'");

                            $id_cat = mysql_fetch_array($new_cat);

                            if($_POST['categoria'] > 0){
                                $oid2 = mysql_query("INSERT INTO sottocategoria (id_categ, id_subcateg) VALUES (

                                        '{$_POST['categoria']}',
                                        '{$id_cat['id']}')");

                                if (!$oid2) {
                                    $message="Si e' riscontrato un problema nell'inserimento: ".mysql_error();
                                    formcontrol::precform($body, "modifica");
                                    $style="alert";
                                    break;
                                }
                            }
                            
                            $message = "Categoria \"".$_POST['nome']."\" inserita correttamente";
                            $body = displaydefault();
                            $style = "message";
                                
                        }
                        
                    }else{/* Visualizzazione form inserimento vuoto */
                        formcontrol::precform($body,"inserisci");
                    }
                    break;

                /* ----- INSERIMENTO PRODOTTO ----- */
                default:

                    $body = new Template("dtml/inserimento_prodotto.html");

                    if($_POST['page'] == 1){ /* Controllo e immissioni dati nel database del form compilato */

                        if(!formcontrol::field($body, $message, $style)){ //controllo valori immessi nel form

                            formcontrol::precform($body,"modifica");

                        }else{
                                    /* PREPARAZIONE DEI DATI PER L'INSERIMENTO NEL DATABASE */
                            $feedback= 0;
                            $prezzo = str_replace(",", ".", $_POST['prezzo']);
                            $nome = addslashes($_POST['nome']);
                            $descrizione = addslashes($_POST['descrizione']);

                            if($_FILES['immagine']['tmp_name'] != ""){
                                // leggo il contenuto del file
                                $nome_file_temporaneo = $_FILES['immagine']['tmp_name'];
                                $dati_file = file_get_contents($nome_file_temporaneo);
                                // preparo il contenuto del file per la query
                                $dati_file = addslashes($dati_file);
                                }

                                 /*      INSERIMENTO PRODOTTO NEL DATABASE      */
                            $oid = mysql_query("INSERT INTO prodotto (nome, descrizione, quantita, prezzo, immagine, attivo, categoria,marca) VALUES (

                                    '{$nome}',
                                    '{$descrizione}',
                                    '{$_POST['quantita']}',
                                    '{$prezzo}',
                                    '{$dati_file}',
                                    '{$_POST['attivo']}',
                                    '{$_POST['categoria']}',
                                    '{$_POST['marca']}')");

                            if (!$oid ) {
                                $message="Si e' riscontrato un problema nell'inserimento: ".mysql_error();
                                formcontrol::precform($body, "modifica");
                                $style="alert";
                            }else{
                                $message = "Prodotto \"".$_POST['nome']."\" inserito correttamente";
                                $body = displaydefault();
                                $style = "message";

                                }


                            }

                    }else{ /* Visualizzazione form inserimento vuoto */
                        formcontrol::precform($body,"inserisci");
                        }

                    break;
            }

        break;

/* ----- Eliminazione prodotto, marche e categorie ------ */

        case 'elimina':
            
            switch ($_POST['tipologia']){

            /*       ELIMINAZIONE MARCA       */
                case 'marche':
                    
                    if (!isset($_POST['check']) && !isset($_POST['id'])){
                        $message="Nessun prodotto selezionato";
                        $style="alert";
                        }else{
                            if(isset($_POST['id'])){
                                $marche[] = $_POST['id'];
                            }else{
                                $marche = $_POST['check'];
                            }
                            
                            foreach ($marche as $k => $v){

                                $oid2=mysql_query("DELETE FROM prodotto WHERE marca ='{$v}'");
                                $oid=mysql_query("DELETE FROM marca WHERE id ='{$v}'");
                                
                                if (!$oid || !$oid2){
                                    $message="Errore durante l'eliminazione".mysql_error();
                                    $style="alert";
                                    break;
                                }
                                }
                        $message="Eliminazione conclusa con successo";
                        $style="message";
                        }

                    $body = displaydefault();
                    break;

                    /*       ELIMINAZIONE CATEGORIA       */
                case 'categorie':

                    if (!isset($_POST['check']) && !isset($_POST['id'])){
                        $message="Nessun prodotto selezionato";
                        $style="alert";
                        }else{
                            //$body = new Template("dtml/conferma_eliminazione_cat.html");

                            if(isset($_POST['id'])){
                                $categorie[] = $_POST['id'];
                            }else{
                                $categorie = $_POST['check'];
                            }

                            foreach ($categorie as $k => $v){

                                
                                $oid2=mysql_query("DELETE FROM prodotto WHERE categoria ='{$v}'");
                                $oid=mysql_query("DELETE FROM categoria WHERE id ='{$v}'");

                                if (!$oid || !$oid2){
                                    $message="Errore durante l'eliminazione".mysql_error();
                                    $style="alert";
                                    break;
                                }
                                }
                        $message="Eliminazione conclusa con successo";
                        $style="message";
                        }

                    $body = displaydefault();

                    break;

                default:
                    if (!isset($_POST['check']) && !isset($_POST['id'])){
                        $message="Nessun prodotto selezionato";
                        $style="alert";
                        }else{
                            if(isset($_POST['id'])){
                                $prodotto[] = $_POST['id'];
                            }else{
                                $prodotto = $_POST['check'];
                            }

                            foreach ($prodotto as $k => $v){
                                $canc = mysql_query("
                                    SELECT marca,categoria
                                      FROM prodotto
                                     WHERE id ='{$v}'");

                                $canc = mysql_fetch_array($canc);

                                $verifica = mysql_query("
                                    SELECT *
                                      FROM prodotto
                                     WHERE marca ='{$canc['marca']}' and categoria = '{$canc['categoria']}'");

                                if(mysql_num_rows($verifica) == 1){
                                    $cat_marca=mysql_query("DELETE FROM categoria_marca WHERE id_marca ='{$canc['marca']}' and id_categ ='{$canc['categoria']}'");

                                    if (!$cat_marca){
                                    $message="Errore durante l'eliminazione in categoria_marca: ".mysql_error();
                                    $style="alert";
                                    break;
                                    }
                                }

                                $oid=mysql_query("DELETE FROM prodotto WHERE prodotto.id ='{$v}'");

                                if (!$oid || !$canc || !$verifica){
                                    $message="Errore durante l'eliminazione: ".mysql_error();
                                    $style="alert";
                                    break;
                                }
                            }
                            
                        $message="Eliminazione conclusa con successo";
                        $style="message";
                        }

                    $body = displaydefault();
                    break;
            }
            break;
            

/* ----- Modifica di un prodotto esistente ----- */

        case 'modifica':

            $body = new Template("dtml/inserimento_prodotto.html");

            if($_POST['page'] == 1){ /* Controllo e immissioni dati nel database del form compilato */
                
                if(!formcontrol::field($body,$message,$style)){ //controllo valori immessi nel form
                    
                    formcontrol::precform($body, 'modifica');
                }else{
                     /* PREPARAZIONE DEI DATI PER L'INSERIMENTO NEL DATABASE */

                    $prezzo = str_replace(",", ".", $_POST['prezzo']);
                    $nome = addslashes($_POST['nome']);
                    $descrizione = addslashes($_POST['descrizione']);
                    $img_query = "";
                    if($_FILES['immagine']['tmp_name'] != ""){
                        // leggo il contenuto del file
                        $nome_file_temporaneo = $_FILES['immagine']['tmp_name'];
                        $dati_file = file_get_contents($nome_file_temporaneo);
                        // preparo il contenuto del file per la query
                        $dati_file = addslashes($dati_file);
                        $img_query = "immagine ='{$dati_file}',";
                        }

                    /* AGGIORNAMENTO PRODOTTO */

                    $oid = mysql_query("
                            UPDATE prodotto
                               SET nome ='{$nome}',
                                   descrizione ='{$descrizione}',
                                   quantita ='{$_POST['quantita']}',
                                   marca ='{$_POST['marca']}',
                                   categoria ='{$_POST['categoria']}',
                                   prezzo ='{$prezzo}',
                                   {$img_query}
                                   attivo = '{$_POST['attivo']}'
                             WHERE id='{$_POST['id']}'");

                    if (!$oid ) {
                        $message="Si e' riscontrato un problema nella modifica: ".mysql_error();
                        formcontrol::precform($body, "modifica");
                        $style="alert";
                    }else{
                        $message = "Prodotto \"".$_POST['nome']."\" modificato correttamente";
                        $body = displaydefault();
                        $style = "message";
                        }
                }

            }else{
                
                $result=setcontents::getResult(
                    "SELECT *
                       FROM prodotto
                      WHERE id='{$_GET['id']}'");

                $_POST=$result[0];
                formcontrol::precform($body,"modifica");
            }
            break;

/* ------ Attiva o disattiva i prodotti selezionati ------ */
        case 'attiva_disattiva':

            if (!isset($_POST['check']) && !isset($_POST['id'])){
                $message="Nessun prodotto selezionato";
                $style="alert";
             }else{
                 if(isset($_POST['id'])){
                     $prodotto[] = $_POST['id'];
                 }else{
                     $prodotto = $_POST['check'];
                 }
                    
                 foreach ($prodotto as $k => $v){

                     $oid=mysql_query("
                             SELECT attivo
                               FROM prodotto
                              WHERE prodotto.id ='{$v}'");

                     if (!$oid){
                         $message="Errore durante l'eliminazione".mysql_error();
                         $style="alert";
                         break;
                     }
                     
                     $dati = mysql_fetch_array($oid);
                     if($dati['attivo'] == 0){
                         $attivo = 1;
                     }else{
                         $attivo = 0;
                     }

                     $update=mysql_query("
                             UPDATE prodotto
                                SET attivo = '{$attivo}'
                              WHERE prodotto.id ='{$v}'");

                      if (!$update){
                         $message="Errore durante l'eliminazione".mysql_error();
                         $style="alert";
                         break;
                     }
                 }
                    
                 $message="Operazione conclusa con successo";
                 $style="message";
             }

             $body = displaydefault();

            break;
    }

}else{ /* Visualizzazione pagina principale della gestione dei prodotti */

    $body = displaydefault();
}

setcontents::setTemplate();
setcontents::setMenu($message,$style);
setcontents::setBody($body);

$main->close();

?>
